package com.culture.bootdemo.designPattern设计模式.strategy策略模式;


import com.culture.bootdemo.common.basevo.Result;
import com.culture.bootdemo.designPattern设计模式.strategy策略模式.service.MessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * @author ：wen
 * @date ：Created in 2019/8/5 16:42
 * @description：:  策略模式-- 观察者模式-->  待定
 */
@RestController
public class TestStrategyController {
    @Autowired
    MessageServiceContext messageServiceContext;

    @GetMapping("testStrategy")
    public Result testStrategy() {
        // 构建一个文本消息
        MessageInfo messageInfo = new MessageInfo(MsgType.TEXT.code, "消息内容");
        MessageService messageService = messageServiceContext.getMessageService(messageInfo.getType());
        // 处理文本消息 消息内容
        // 可以看到文本消息被文本处理类所处理
        messageService.handleMessage(messageInfo);
        return Result.builder().data(1).page(null).build();
    }

}
